﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace UniMana.Utils.Configs
{
    public static class DefaultConfig
    {


        public const string EMPTY_GUID = "00000000-0000-0000-0000-000000000000";
        public const string THEORY_NAME = "Lý thuyết";  //Tên loại tính chỉ lý thuyết
        public const string PRACTICE_NAME = "Thực hành"; //Tên loại tín chỉ thực hành
        public const string PROJECT_NAME = "Bài tập/Đồ án"; //Tên loại tín chỉ bài tập/đồ án
        
        public const string SCORETYPE_2 = "2";//Mã loại điểm cuối kì
        public const string SCORETYPE_3 = "3";//Mã loại điểm lần hai

        public const int Personnel_WorkTypeKey = 1;//Mã loại công việc là giảng
        public const int PersonPositionKey = 17;// Mã giảng viên

        public const bool FEMALE = true;
        public const bool MALE = false;

        public const int SCORE_TYPE_1 = 1;//Mã loại điểm giữa kì
        public const int SCORE_TYPE_2 = 2;//Mã loại điểm cuối kì
        public const int SCORE_TYPE_3 = 3;//Mã loại điểm lần hai

        public const int MiddleTestInYearly = 30; //% giữa kỳ lớp học phần
        public const int FinalTestInYearly = 70; //% học cuối kỳ lớp học phần
        public const int MiddleTestInNoYearly = 40; //% học giữa kỳ lớp tín chỉ
        public const int FinalTestInNoYearly = 60; //% học cuối kỳ lớp tín chỉ

        public const int MinScorePass_Yearly = 5; //Điểm tối thiểu để đậu lớp quy chế
        public const int MinScorePass_NoYearly = 4;// Điểm tối thiểu để đậu lớp tín chỉ
        public const double MaxScoreImproving = 5.5;

        public const int NumOfOneCredit = 15;// số tiết chỉ cho 1 tín chỉ
        public const int NumOflestionOneSession = 4;// số tiết chỉ cho 1 tín chỉ

        public const int Score_ReTest = 1; // Học lại
        public const int Score_Improving = 2; // Cải thiện
        public const int Score_FirstCore = 0; // Học lần đầu
        public const string DEFAULT_LOGO_LAU_PATH = "";
        public const string DEFAULT_LOGO_BSI_PATH = "";


        public const int MinAverageScoreAccumulatePass_Yearly = 5;
        public const double MinAverageScoreAccumulatePass_NoYearly = 5.5;

        public enum Subject_Regist_TypeKey
        {
            /// <summary>
            /// Học lần đầu
            /// </summary>
            Score_FirstCore = 0, 
            /// <summary>
            /// Học lại
            /// </summary>
            Score_ReTest = 1, 
            /// <summary>
            /// Cải thiện điểm
            /// </summary>
            Score_Improving = 2
        }

        /// <summary>
        /// Bậc đào tạo
        /// </summary>
        public enum Catalogue_Level
        {
            /// <summary>
            /// Trung cấp
            /// </summary>
            Intermediate = 1, 
            /// <summary>
            /// Cao đẳng
            /// </summary>
            Colleges = 2, 
            /// <summary>
            /// Đại học
            /// </summary>
            University = 3
        }

        public const int Catalogue_Status1 = 1;
        /// <summary>
        /// Các loại đăng ký
        /// </summary>
        public static DataTable RegistStyle
        {
            get
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("RegistStyleKey", System.Type.GetType("System.Int32"));
                dt.Columns.Add("Name");
                dt.Rows.Add(Score_FirstCore, "Đăng ký lần đầu");
                dt.Rows.Add(Score_ReTest, "Đăng ký học lại");
                dt.Rows.Add(Score_Improving, "Đăng ký học cải thiện điểm");
                return dt;
            }
        }

        public enum ScoreType
        {
            /// <summary>
            /// Giữa kỳ (Đại học, cao đẳng)
            /// </summary>
            MidTerm =1,
            /// <summary>
            /// Cuối kì lần 1 (Đại học, cao đẳng)
            /// </summary>
            EndTerm1 = 2,
            /// <summary>
            /// Cuối kì lần 2 (Đại học, cao đẳng)
            /// </summary>
            EndTerm2 = 3,
            /// <summary>
            /// Thực hành
            /// </summary>
            Pratice = 4,
            /// <summary>
            /// Kiểm tra thường xuyên 1 (Hệ trung cấp )
            /// </summary>
            FrequentlyTest1 = 5,
            /// <summary>
            /// Kiểm tra thường xuyên 2 (Hệ trung cấp )
            /// </summary>
            FrequentlyTest2 = 6,
            /// <summary>
            /// Kiểm tra định kỳ 1 (Hệ trung cấp )
            /// </summary>
            PeriodicallyTest1 = 7,
            /// <summary>
            /// Kiểm tra định kỳ 2 (Hệ trung cấp )
            /// </summary>
            PeriodicallyTest2 = 8,
            /// <summary>
            /// Thi (Hệ trung cấp)
            /// </summary>
            FinalTest = 9


        }

        public const int Task0 = 0; // Phân công
        public const int Task1 = 1; // Được phân công
        public const int Task2 = 2; // Tất cả

        public const int Stage0 = 0;    // Tất cả
        public const int Stage1 = 1;    // Chưa tiếp nhận
        public const int Stage2 = 2;    // Đã tiếp nhận
        public const int Stage3 = 3;    // Hoàn thành
    }
}
